/**
 * Clase que representa la estructura de la tabla en un objeto Java. Cada
 * atributo de la tabla es creado como variables y su formato como anotaciones
 *
 * @version 1.0, 25/04/12
 *
 */
package person.schedule;

import java.text.ParseException;
import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import system.general.Columna;

@ManagedBean(name = "person_scheduleBeans")
@ViewScoped
public class Beans {

    @Columna(nombre = "id", tipo = "Integer")
    private Integer id = 0;
    @Columna(nombre = "id_persona", tipo = "Integer")
    private Integer id_persona = 0;
    @Columna(nombre = "periodoinicial", tipo = "Date")
    private Date periodoinicial = new java.util.Date();
    @Columna(nombre = "periodofinal", tipo = "Date")
    private Date periodofinal = new java.util.Date();
    @Columna(nombre = "idl_dia", tipo = "Integer")
    private Integer idl_dia = 0;
    @Columna(nombre = "horaentrada", tipo = "String")
    private String horaentrada = "";
    @Columna(nombre = "horasalida", tipo = "String")
    private String horasalida = "";
    @Columna(nombre = "id_persona_asignatura", tipo = "Integer")
    private Integer id_persona_asignatura = 0;
    @Columna(nombre = "id_sede", tipo = "Integer")
    private Integer id_sede = 0;
    @Columna(nombre = "aula", tipo = "String")
    private String aula = "";
    private person.asignature.Beans docente_asignatureBeans = new person.asignature.Beans();
    private university.general.Beans universityBeans = new university.general.Beans();
    private university.location.Beans university_basedBeans = new university.location.Beans();
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");

    public Beans() {
    }

    public Beans(Integer id, Integer id_persona, Date periodoinicial, Date periodofinal, Integer idl_dia, String horaentrada, String horasalida, Integer id_persona_asignatura, Integer id_sede, String aula, String da_nombre, Integer ub_u_id, String ub_nombre) throws ParseException {

        this.id = id;
        this.id_persona = id_persona;
        setPeriodoinicial(periodoinicial);
        setPeriodofinal(periodofinal);
        this.idl_dia = idl_dia;
        this.horaentrada = horaentrada;
        this.horasalida = horasalida;
        this.id_persona_asignatura = id_persona_asignatura;
        this.id_sede = id_sede;
        this.aula = aula;
        this.docente_asignatureBeans.setNombre(da_nombre);
        this.universityBeans.setId(ub_u_id);
        this.university_basedBeans.setNombre(ub_nombre);
    }

    /**
     * Método que permite inicializar todas las variables
     */
    public void clearBeans() throws ParseException {
        setId((Integer) 0);
        setId_persona((Integer) 0);
        setPeriodoinicial(new java.util.Date());
        setPeriodofinal(new java.util.Date());
        setIdl_dia((Integer) 0);
        setHoraentrada("");
        setHorasalida("");
        setId_persona_asignatura((Integer) 0);
        setId_sede((Integer) 0);
        setAula("");
        docente_asignatureBeans.clearBeans();
        universityBeans.clearBeans();
        university_basedBeans.clearBeans();
    }

    /**
     * Método que permite sustituir caracteres especiales que puedan afectar las
     * sentencias SQL. por ejemplo: ('), (/). Debe ser utilizado en el (set) de
     * los atributos tipo String.
     *
     * @param data cualquier dato tipo String
     * @return Devuelve el dato con la sustitución de caracteres especiales
     */
    private String strScape(String data) {
        data = data.trim();
        data = data.replace("'", "\'");
        data = data.replace("\\", "\\\\");
        return data;
    }

    /**
     * @return the id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * @return the id_persona
     */
    public Integer getId_persona() {
        return id_persona;
    }

    /**
     * @param id_persona the id_persona to set
     */
    public void setId_persona(Integer id_persona) {
        this.id_persona = id_persona;
    }

    /**
     * @return the anio
     */
    /**
     * @return the periodoinicial
     */
    public Date getPeriodoinicial() throws ParseException {


        return periodoinicial;
    }

    /**
     * @param periodoinicial the periodoinicial to set
     */
    public void setPeriodoinicial(Date periodoinicial) throws ParseException {

        this.periodoinicial = periodoinicial;
    }

    /**
     * @return the periodofinal
     */
    public Date getPeriodofinal() throws ParseException {
        return periodofinal;
    }

    /**
     * @param periodofinal the periodofinal to set
     */
    public void setPeriodofinal(Date periodofinal) {
        this.periodofinal = periodofinal;
    }

    /**
     * @return the dia
     */
    public Integer getIdl_dia() {
        return idl_dia;
    }

    /**
     * @param dia the dia to set
     */
    public void setIdl_dia(Integer idl_dia) {
        this.idl_dia = idl_dia;
    }

    /**
     * @return the horaentrada
     */
    public String getHoraentrada() {
        return this.horaentrada;
    }

    /**
     * @param horaentrada the horaentrada to set
     */
    public void setHoraentrada(String horaentrada) {
        this.horaentrada = horaentrada;
    }

    /**
     * @return the horasalida
     */
    public String getHorasalida() {
        return horasalida;
    }

    /**
     * @param horasalida the horasalida to set
     */
    public void setHorasalida(String horasalida) {
        this.horasalida = horasalida;
    }

    /**
     * @return the id_docente_asignatura
     */
    public Integer getId_persona_asignatura() {
        return id_persona_asignatura;
    }

    /**
     * @param id_docente_asignatura the id_docente_asignatura to set
     */
    public void setId_persona_asignatura(Integer id_persona_asignatura) {
        this.id_persona_asignatura = id_persona_asignatura;
    }

    /**
     * @return the id_sede
     */
    public Integer getId_sede() {
        return id_sede;
    }

    /**
     * @param id_sede the id_sede to set
     */
    public void setId_sede(Integer id_sede) {
        this.id_sede = id_sede;
    }

    /**
     * @return the aula
     */
    public String getAula() {
        return aula;
    }

    /**
     * @param aula the aula to set
     */
    public void setAula(String aula) {
        this.aula = strScape(aula);
    }

    /**
     * @return the docente_asignatureBeans
     */
    public person.asignature.Beans getDocente_asignatureBeans() {
        return docente_asignatureBeans;
    }

    /**
     * @return the universityBeans
     */
    public university.general.Beans getUniversityBeans() {
        return universityBeans;
    }

    /**
     * @return the university_basedBeans
     */
    public university.location.Beans getUniversity_locationBeans() {
        return university_basedBeans;
    }
}
